package com.example.bookcar.entity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;
import java.math.BigDecimal;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* 订单表
* @TableName t_order
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("订单对象")
public class Order implements Serializable {

    /**
    * 主键，自增
    */
    @NotNull(message="[主键，自增]不能为空")
    @ApiModelProperty("主键，自增")
    private Long id;
    /**
    * 订单号(用于页面显示)
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("订单号(用于页面显示)")
    private String orderCode;
    /**
    * 租车时间
    */
    @ApiModelProperty("租车时间")
    private Date rentTime;
    /**
    * 还车时间
    */
    @ApiModelProperty("还车时间")
    private Date returnTime;
    /**
    * 租车地点
    */
    @ApiModelProperty("租车地点")
    private Long rentLocation;
    /**
    * 还车地点
    */
    @ApiModelProperty("还车地点")
    private Long returnLocation;
    /**
    * 车辆ID
    */
    @NotNull(message="[车辆ID]不能为空")
    @ApiModelProperty("车辆ID")
    private Long carId;
    /**
    * 用户ID
    */
    @NotNull(message="[用户ID]不能为空")
    @ApiModelProperty("用户ID")
    private Long userId;
    /**
    * 租车天数
    */
    @ApiModelProperty("租车天数")
    private BigDecimal orderDay;
    /**
    * 订单金额
    */
    @ApiModelProperty("订单金额")
    private BigDecimal price;
    /**
    * 订单状态(1：待支付 2：已支付 3：进行中 4：已取消 5：已完成)
    */
    @ApiModelProperty("订单状态(1：待支付 2：已支付 3：进行中 4：已取消 5：已完成)")
    private String status;
}
